package com.bipbip.repositorio;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Repository;

import com.bipbip.modelo.Lugar;
import com.bipbip.modelo.Publicacion;
import com.bipbip.modelo.Usuario;
import com.bipbip.modelo.Viaje;

// Para usar este dummy, descomentar esta linea y comentar la misma en JPAPublicacionDAOImpl

@Repository(value = "publicacionDao")
public class PublicacionDAOImplList implements PublicacionDAO {
       
        /* (non-Javadoc)
         * @see modelo.dao.PublicacionDAO#obtenerTodos()
         */

        private List<Publicacion> publicaciones = new ArrayList<Publicacion>();
       
        public PublicacionDAOImplList(){
                Lugar l1 = new Lugar(34.25f, -12.4657f, "17/11/2013");
                Lugar l2 = new Lugar(35.25f, -12.4157f, "17/11/2013");
                Lugar l3 = new Lugar(34.25f, -12.4657f, "17/11/2013");
                Lugar l4 = new Lugar(35.25f, -42.1457f, "17/11/2013");
                Lugar l5 = new Lugar(14.25f, -12.4657f, "17/11/2013");
                Lugar l6 = new Lugar(32.25f, -12.3657f, "17/11/2013");
                Lugar l7 = new Lugar(34.27f, -12.4657f, "17/11/2013");

                Viaje v1 = new Viaje();
                v1.agregarLugar(l1);
                Viaje v2 = new Viaje();
                v2.agregarLugar(l1);
                v2.agregarLugar(l2);
                Viaje v3 = new Viaje();
                v3.agregarLugar(l3);
                v3.agregarLugar(l2);
                v3.agregarLugar(l1);
                v3.agregarLugar(l4);
               
                Publicacion p1 = new Publicacion();
                Publicacion p2 = new Publicacion();
                Publicacion p3 = new Publicacion();
               
                p1.setFechaPosteo("17/11/2013");
                p1.setMensaje("Hola, ofrezco 3 lugares para viaje diario al trabajo zona Retiro.");
                p1.setTitulo("Retiro, L a V, 9 hs");
                p1.setTags("ofrecimientos,retiro");
                p1.setViaje(v1);
                p1.setId(0);

                p2.setFechaPosteo("17/10/2013");
                p2.setMensaje("Hola, ofrezco 3 lugares para viaje diario al trabajo zona Llavallol.");
                p2.setTitulo("Retiro, L a V, 9 hs");
                p2.setTags("pedidos,retiro");
                p2.setViaje(v2);
                p1.setId(1);

                p3.setFechaPosteo("11/10/2013");
                p3.setMensaje("Hola, ofrezco 3 lugares para viaje diario al trabajo zona Lomas.");
                p3.setTitulo("Retiro, L a V, 9 hs");
                p3.setTags("pedidos,retiro");
                p3.setViaje(v3);
                p1.setId(2);
                p1.setUsuario(1);
               
//                publicaciones.add(p1);
//                publicaciones.add(p2);
//                publicaciones.add(p3);
        }

		public List<Publicacion> selectAll() {
			return publicaciones;
		}

		public Publicacion insert(Publicacion publicacion) {
			publicacion.setId(publicaciones.size());
			publicaciones.add(publicacion);
			return publicacion;
		}

		public Publicacion select(int id) {
			return publicaciones.get(id);
		}

		public void delete(Publicacion p) {
			publicaciones.remove(p);
		}

		public List<Publicacion> selectByUsuario(Usuario usuario) {
			List<Publicacion> filtrada = new ArrayList<Publicacion>();
			for (Publicacion p : publicaciones) {
				if (p.getUsuario() == usuario.getId()) {
					filtrada.add(p);
				}
			}
			return filtrada;
		}

}
